// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/kpdus/jad.html
// Decompiler options: braces fieldsfirst space lnc
package com.google.gson.internal.bind;
import com.google.gson.Gson;
import com.google.gson.TypeAdapter;
import com.google.gson.TypeAdapterFactory;
import com.google.gson.internal.LinkedTreeMap;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonToken;
import com.google.gson.stream.JsonWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
// Referenced classes of package com.google.gson.internal.bind:
// g, h
public final class ObjectTypeAdapter extends TypeAdapter
{
public static final TypeAdapterFactory FACTORY = new g();
private final Gson a;
private ObjectTypeAdapter(Gson gson)
{
a = gson;
}
ObjectTypeAdapter(Gson gson, g g1)
{
this(gson);
}
public Object read(JsonReader jsonreader)
{
JsonToken jsontoken = jsonreader.peek();
switch (h.a[jsontoken.ordinal()])
{
default:
throw new IllegalStateException();
case 1: // '\001'
ArrayList arraylist = new ArrayList();
jsonreader.beginArray();
for (; jsonreader.hasNext(); arraylist.add(read(jsonreader))) { }
jsonreader.endArray();
return arraylist;
case 2: // '\002'
LinkedTreeMap linkedtreemap = new LinkedTreeMap();
jsonreader.beginObject();
for (; jsonreader.hasNext(); linkedtreemap.put(jsonreader.nextName(), read(jsonreader))) { }
jsonreader.endObject();
return linkedtreemap;
case 3: // '\003'
return jsonreader.nextString();
case 4: // '\004'
return Double.valueOf(jsonreader.nextDouble());
case 5: // '\005'
return Boolean.valueOf(jsonreader.nextBoolean());
case 6: // '\006'
jsonreader.nextNull();
return null;
}
}
public void write(JsonWriter jsonwriter, Object obj)
{
if (obj == null)
{
jsonwriter.nullValue();
return;
}
TypeAdapter typeadapter = a.getAdapter(obj.getClass());
if (typeadapter instanceof ObjectTypeAdapter)
{
jsonwriter.beginObject();
jsonwriter.endObject();
return;
} else
{
typeadapter.write(jsonwriter, obj);
return;
}
}
}